<?php

class MensajesController extends GxController {

    public function actionView($id) {
        $this->render('view', array(
            'model' => $this->loadModel($id, 'Mensajes'),
        ));
    }

    private function guardaFrecuenciaDeTemporal($tiempos,$connection,$mensajeId) {        
        $unaVez = ($_POST["Mensajes"]["MENSAJETIPO"] == "primera") ? "Si" : "No";
        $sql = "select TEMPORALINT1,TEMPORALVARCHAR1,TEMPORALVARCHAR2 from temporal where TEMPORALINDICE = $tiempos";
        $command = $connection->createCommand($sql);
        $results = $command->queryAll();
        if (count($results) > 0) {
            switch ($results[0]["TEMPORALVARCHAR1"]) {
                case 'dia':
                    $sql = "insert into FRECUENCIAS(FRECUENCIATIPO,FRECUENCIATODODIA,FRECUENCIADIAS,MENSAJE_ID,FRECUENCIAUNAVEZ) VALUES('{$results[0]["TEMPORALVARCHAR1"]}','{$results[0]["TEMPORALVARCHAR2"]}',{$results[0]["TEMPORALINT1"]},$mensajeId,'$unaVez')";
                    break;
                case 'sem':
                    $sql = "insert into FRECUENCIAS(FRECUENCIATIPO,FRECUENCIASEMANAS,FRECUENCIASEMANADIAS,MENSAJE_ID,FRECUENCIAUNAVEZ) VALUES('{$results[0]["TEMPORALVARCHAR1"]}',{$results[0]["TEMPORALINT1"]},'{$results[0]["TEMPORALVARCHAR2"]}',$mensajeId,'$unaVez')";
                    break;
                default:
                    exit("Parametro incorrecto");
                    break;
            }
            $command = $connection->createCommand($sql)->execute();
            $sql = "delete from temporal where temporalindice = '$tiempos'";
            $command = $connection->createCommand($sql)->execute();
        } //finif (count($results) > 0) {
    } //fin private function guardaFrecuenciaDeTemporal(){

    public function actionCreate() {
        Controller::registrar_scrips();
        Controller::registrar_scrips_tinymce();
        $model = new Mensajes;
        if (isset($_POST['Mensajes'])) {
            $model->setAttributes($_POST['Mensajes']);
            if ($model->save()) {
                if (Yii::app()->getRequest()->getIsAjaxRequest())
                    Yii::app()->end();
                else {
                    $connection = Yii::app()->db;
                    $this->guardaFrecuenciaDeTemporal($_POST["tiempos"],$connection,$model->MENSAJEID);
                    $this->redirect(array('view', 'id' => $model->MENSAJEID));
                }
            } //fin if ($model->save()) {
        } //fin if (isset($_POST['Mensajes'])) {
        $this->render('create', array('model' => $model));
    }

    public function actionUpdate($id) {
        Controller::registrar_scrips();
        Controller::registrar_scrips_tinymce();
        $model = $this->loadModel($id, 'Mensajes');
        if (isset($_POST['Mensajes'])) {
            $model->setAttributes($_POST['Mensajes']);
            if ($model->save()) {
                $connection = Yii::app()->db;
                $transaction = $connection->beginTransaction();
                try {
                    $sql = "delete from FRECUENCIAS where MENSAJE_ID = {$model->MENSAJEID}";
                    $connection->createCommand($sql)->execute();
                    $this->guardaFrecuenciaDeTemporal($_POST["tiempos"],$connection,$model->MENSAJEID);
                    $transaction->commit();
                } catch (Exception $e) {
                    exit("error".$e);
                    $transaction->rollBack();
                }
                $this->redirect(array('view', 'id' => $model->MENSAJEID));
            }
        }
        $this->render('update', array(
            'model' => $model,
        ));
    }

    public function actionDelete($id) {
        if (Yii::app()->getRequest()->getIsPostRequest()) {
            $this->loadModel($id, 'Mensajes')->delete();

            if (!Yii::app()->getRequest()->getIsAjaxRequest())
                $this->redirect(array('admin'));
        } else
            throw new CHttpException(400, Yii::t('app', 'Your request is invalid.'));
    }

    public function actionIndex() {
        $dataProvider = new CActiveDataProvider('Mensajes');
        $this->render('index', array(
            'dataProvider' => $dataProvider,
        ));
    }

    public function actionAdmin() {
        $model = new Mensajes('search');
        $model->unsetAttributes();

        if (isset($_GET['Mensajes']))
            $model->setAttributes($_GET['Mensajes']);

        $this->render('admin', array(
            'model' => $model,
        ));
    }

    public function actionguardaFiltro() {
        if (trim($_POST["opc"]) == "" || trim($_POST["timestamp"]) == "")
            exit("Parametros incorrectos");
        $sqlPre = "delete from temporal where temporalindice = {$_POST["timestamp"]}";
        switch ($_POST["opc"]) {
            case 'sem':
                if (trim($_POST["repiteSemana"]) == "" || !is_int(intval($_POST["repiteSemana"])))
                    exit("Debe registrar un número de semanas valido");
                $repiteSemana = $_POST["repiteSemana"];
                $cadenaDiasSemana = $this->convierteCadenaDias($_POST["diasEnSemana"]);
                $sql = "insert into temporal(TEMPORALINDICE,TEMPORALINT1,TEMPORALVARCHAR1,TEMPORALVARCHAR2) VALUES({$_POST["timestamp"]},$repiteSemana,'{$_POST["opc"]}','$cadenaDiasSemana')";
                break;
            case 'dia':
                if (trim($_POST["radioDia"]) == "")
                    exit("Parametros incorrectos");
                $dias = 0;
                if (trim($_POST["dias"]) != "" && !is_int(intval($_POST["dias"])))
                    exit("Debe registrar un número de días valido");
                elseif (trim($_POST["dias"]) != "")
                    $dias = $_POST["dias"];
                $sql = "insert into temporal(TEMPORALINDICE,TEMPORALINT1,TEMPORALVARCHAR1,TEMPORALVARCHAR2) VALUES({$_POST["timestamp"]},$dias,'{$_POST["opc"]}','{$_POST["radioDia"]}')";
                break;
            default :
                exit("parametros incorrectos");
                break;
        }
        $connection = Yii::app()->db;
        $connection->createCommand($sqlPre)->execute();
        $connection->createCommand($sql)->execute();
        echo "<script type='text/javascript'>parent.termino();</script>";
    }

    private function convierteCadenaDias($diasSemana) {
        $diaString = "";
        foreach ($diasSemana as $dia) {
            $diaString = $diaString . "," . $dia;
        }
        return trim($diaString, ",");
    } //fin private function convierteCadenaDias($diasSemana){
}